package com.eltsistemas.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.eltsistemas.modelo.Produto;

public class ProdutoDao {
	
private Session session;
	
	public ProdutoDao(Session session)
	{
		this.session=session;
	}
	
	public void adiciona(Produto produto)
	{
		session.save(produto);
		session.getTransaction().commit();
	}
	
	public List<Produto> lista()
	{
		return session.createCriteria(Produto.class).list();
	}
	
	public Produto exibe(Produto produto)
	{
		Produto encontradoProduto = (Produto) session.load(Produto.class, produto.getId());
		return encontradoProduto;
	}
	
	public void altera(Produto produto)
	{
		session.update(produto);
		session.getTransaction().commit();
	}
	
	public void remover(Produto produto)
	{
		session.delete(produto);
		session.getTransaction().commit();
	}

	public Produto buscaCodigo(String nome)
	{
		// TODO Auto-generated method stub
		
		Query query = this.session.createQuery("from Produto " +
				"where nome = :nome");
				query.setString("nome", nome);
				
		Produto encontradaProduto = (Produto) query.uniqueResult();
		return encontradaProduto;
		
	}

}
